/**
 * 
 */
package usuario;

import java.util.ArrayList;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import br.com.sistransporte.transite.permissao.controller.PermissaoFacade;
import br.com.sistransporte.transite.usuario.controller.UsuarioFacade;
import br.com.sistransporte.transitedto.permissao.PermissaoDTO;
import br.com.sistransporte.transitedto.usuario.UsuarioDTO;
import br.com.sistransporte.transitevo.usuario.model.UsuarioVO;
import br.com.src.dto.abstractdto.AbstractDTO;
import br.com.src.dto.requisicao_retorno.RequisicaoServico;
import br.com.src.dto.requisicao_retorno.RetornoServico;
import br.com.src.utilidades.Utilidades;

/**
 * Classe que representa
 *
 *
 * @author Nelson Luis da Silva Junior <nelson.jr13@hotmail.com@>
 * @since 4 de Jul de 2013 16:54:35
 * @version 1.0
 */
@ContextConfiguration( locations = { "classpath:rootTeste-context.xml", "classpath:rootTesteLog-context.xml" } )
@RunWith( SpringJUnit4ClassRunner.class )
public final class UsuarioTeste{

	//@Test
	public void filtrar() throws Throwable {
		RequisicaoServico requisicaoServico = new RequisicaoServico( "teste", new UsuarioDTO() );
		RetornoServico retornoServico = UsuarioFacade.getInstance().filtrar( requisicaoServico );

		if ( !Utilidades.isNuloOuVazio( retornoServico.erro ) ) {
			throw retornoServico.erro;
		}

		for ( AbstractDTO abstractsDTOs : retornoServico.getDtosRetorno() ) {
			System.out.println( abstractsDTOs );
		}
	}

	@Test
	public void inserir() throws Throwable {

		RequisicaoServico requisicaoServico = new RequisicaoServico( "Transite", new PermissaoDTO() );
		RetornoServico retornoServico = PermissaoFacade.getInstance().filtrar( requisicaoServico );
		if ( !Utilidades.isNuloOuVazio( retornoServico.erro ) ) {
			throw retornoServico.erro;
		}

		ArrayList< PermissaoDTO > permissoes = new ArrayList< PermissaoDTO >();

		for ( AbstractDTO dto : retornoServico.getDtosRetorno() ) {
			permissoes.add( (PermissaoDTO) dto );
		}

		requisicaoServico = new RequisicaoServico( "Transite", new UsuarioDTO( null, "admin", "transite", "true", UsuarioVO.ADMINISTRADOR,"guilherme.java@gv8.com.br", permissoes) );
		retornoServico = UsuarioFacade.getInstance().inserir( requisicaoServico );

		filtrar();

		if ( !Utilidades.isNuloOuVazio( retornoServico.erro ) ) {
			throw retornoServico.erro;
		}
	}
}
